Наверное, ни одна мало-мальски серьезная программа не обходится без написания собственных процедур и функций. Давайте рассмотрим, как это делается в FoxPro. Создадим под программку возвращающую завтрашнюю дату относительно передаваемого параметра. Вот текст программы, в которой это реализуется и через функцию, и через процедуру:
? TomorrowFunc(date())
? TomorrowProc(date())
function TomorrowFunc(dToday)
if parameters() = 1
if type('dToday') = 'D'
return dToday + 1
else
messagebox('Передаваемый параметр должен быть датой')
return {} && Пустая дата
endif
else
messagebox('Неверное количество параметров')
return {}
endif
endfunc
procedure TomorrowProc
parameters dToday
if parameters() = 1
if type('dToday') = 'D'
return dToday + 1
else
messagebox('Передаваемый параметр должен быть датой')
return {} && Пустая дата
endif
else
messagebox('Неверное количество параметров')
return {}
endif
endproc
Как видите, результат одинаков. FoxPro, вообще, очень гибок к вещам такого плана. Скажем, если нам нужно использовать одну и туже процедуру в нескольких программах, входящих в один проект, можно просто сделать отдельную программу только с этой процедурой, назвать файл именем процедуры и также вызывать ее.